<!--SIF Implementation Specification 2.2-6 (March 17, 2008)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.sifinfo.org/infrastructure/2.x" xmlns:sif="http://www.sifinfo.org/infrastructure/2.x" elementFormDefault="qualified">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="imports/xml/xml.xsd" />
  <xs:complexType name="StudentContactType">
    <xs:annotation>
      <xs:documentation>This object contains information regarding a contact person for a student.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="LocalId" minOccurs="0" nillable="true" type="sif:LocalIdType">
        <xs:annotation>
          <xs:documentation>
							The locally-assigned identifier for this contact.  Note: LocalId may be used as a unique person identifier
							rather than a unique contact identifier.  In this case there may be more than one StudentContact instance with the same LocalId.
						</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="OtherIdList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="OtherId" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>Lists an "other" identifier associated with the contact.</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:normalizedString">
                    <xs:attribute name="Type" use="required">
                      <xs:annotation>
                        <xs:documentation>Code that defines the type of this other ID.</xs:documentation>
                      </xs:annotation>
                      <xs:simpleType>
                        <xs:restriction base="sif:NCES0147IdentificationSystemType">
                          <xs:enumeration value="0328" />
                          <xs:enumeration value="0164" />
                          <xs:enumeration value="0339" />
                          <xs:enumeration value="9999" />
                          <xs:enumeration value="0222" />
                          <xs:enumeration value="0154" />
                          <xs:enumeration value="0399" />
                          <xs:enumeration value="0004" />
                          <xs:enumeration value="0113" />
                          <xs:enumeration value="5013" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Name" type="sif:NameOfRecordType">
        <xs:annotation>
          <xs:documentation>
							The name of the contact.  Note: Type attribute value of 04 must be used here.
						</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="OtherNames" minOccurs="0" nillable="true" type="sif:OtherNamesType">
        <xs:annotation>
          <xs:documentation>Previous, alternate or other names or aliases associated with the contact.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Demographics" minOccurs="0" nillable="true" type="sif:DemographicsType">
        <xs:annotation>
          <xs:documentation>Demographic information about the contact.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="AddressList" minOccurs="0" nillable="true" type="sif:AddressListType">
        <xs:annotation>
          <xs:documentation>The contact's address(es).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
        <xs:annotation>
          <xs:documentation>The contact's phone number(s).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="EmailList" minOccurs="0" nillable="true" type="sif:EmailListType">
        <xs:annotation>
          <xs:documentation>The contact's e-mail address(es).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Relationship" minOccurs="0" nillable="true" type="sif:RelationshipType">
        <xs:annotation>
          <xs:documentation>Defines the relationship of the contact to the student.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="EmployerType" minOccurs="0" nillable="true" type="sif:NCES0614EmployerTypeType">
        <xs:annotation>
          <xs:documentation>Code that defines the employer type.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="EducationalLevel" minOccurs="0" nillable="true" type="sif:EducationalLevelType">
        <xs:annotation>
          <xs:documentation>The highest level of education completed by the contact person.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ContactFlags">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ParentLegalGuardian" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Does the individual have parental or legal guardianship responsibility for the student?</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                  <xs:enumeration value="Unknown" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="PickupRights" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>This element tells whether or not the contact has pickup rights.</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                  <xs:enumeration value="Unknown" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="LivesWith" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Does the student live with this contact?</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                  <xs:enumeration value="Unknown" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="AccessToRecords" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Does this contact have access to the student's records?</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                  <xs:enumeration value="Unknown" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="EmergencyContact" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Should this contact be notified in case of emergency?</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                  <xs:enumeration value="Unknown" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="HasCustody" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Does this contact have or share custody of the student?</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                  <xs:enumeration value="Unknown" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="DisciplinaryContact" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Is this person to be contacted in case of disciplinary action?</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                  <xs:enumeration value="Unknown" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="PrimaryCareProvider" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Does this person provide daily living or personal assistance to the student?</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                  <xs:enumeration value="Unknown" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ContactSequence" minOccurs="0" nillable="true" type="xs:unsignedInt">
        <xs:annotation>
          <xs:documentation>Number indicating the order in which the person should be contacted.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>The GUID of this contact.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="StudentPersonalRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>The GUID of the student whose contact this is.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="StudentContact" type="sif:StudentContactType" />

</xs:schema>